const Koa = require('koa')
const koaBodyparser = require('koa-bodyparser')
const cors = require('koa2-cors'); 
const koaStatic = require('koa-static')
const path = require('path')
const router = require('./router/index')
const jwt = require('koa-jwt') // token验证
const parameter = require('koa-parameter'); // 请求参数校验

const app = new Koa()



app.use(cors()) // 解决跨域
app.use(koaBodyparser())// 解析post参数

//将app传进去就可以全局使用
app.use(parameter(app));

//response中间件 成功响应体封装
const response = require('./middlewares/response.js');
app.use(response)

// 先不做登录校验
// const secert = 'zjh666' // 这里要与jsonwebtoken的key相同
//   app
//   .use(jwt({
//     secert,
//   }).unless({
//     path: [/\/user\/login/],
//   }))

// token失效中间件
// const errorHandle = require('./middlewares/errorHandle.js');
// app.use(errorHandle)


app.use(async function handleError(context, next) {
	// 调用下一个中间件
  try {
    // console.log('来了老弟');
    await next()
  } catch (error) {
    // 捕捉可能发生的任何错误
    context.status = 500
    context.body = error
  }
})
app.use(router.routes()).use(router.allowedMethods()); //路由

app.use(koaStatic(path.join(__dirname, './upload')))//开启静态资源访问


app.listen(9527,()=>{
    console.log('9527端口监听中。。。');
})
